package com.ruoyi.module.domain;

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 用户章节学习记录对象 user_chapter_record
 * 
 * @author ruoyi
 */
public class UserChapterRecord extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    private Long id;

    /** 用户ID */
    @Excel(name = "用户ID")
    private Long userId;

    /** 词典ID */
    @Excel(name = "词典ID")
    private String dictId;

    /** 章节号（-1表示复习） */
    @Excel(name = "章节号")
    private Integer chapter;

    /** 完成时间戳（UTC） */
    @Excel(name = "完成时间戳")
    private Long timestamp;

    /** 用时（秒） */
    @Excel(name = "用时")
    private Integer time;

    /** 正确按键数 */
    @Excel(name = "正确按键数")
    private Integer correctCount;

    /** 错误按键数 */
    @Excel(name = "错误按键数")
    private Integer wrongCount;

    /** 输入单词总数 */
    @Excel(name = "输入单词总数")
    private Integer wordCount;

    /** 正确单词索引（JSON数组） */
    private String correctWordIndexes;

    /** 章节单词总数 */
    @Excel(name = "章节单词总数")
    private Integer wordNumber;

    /** 关联的单词记录ID（JSON数组） */
    private String wordRecordIds;

    /** 每分钟单词数 */
    @Excel(name = "WPM")
    private Integer wpm;

    /** 按键正确率（%） */
    @Excel(name = "按键正确率")
    private Integer inputAccuracy;

    /** 单词正确率（%） */
    @Excel(name = "单词正确率")
    private Integer wordAccuracy;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setUserId(Long userId) 
    {
        this.userId = userId;
    }

    public Long getUserId() 
    {
        return userId;
    }

    public void setDictId(String dictId) 
    {
        this.dictId = dictId;
    }

    public String getDictId() 
    {
        return dictId;
    }

    public void setChapter(Integer chapter) 
    {
        this.chapter = chapter;
    }

    public Integer getChapter() 
    {
        return chapter;
    }

    public void setTimestamp(Long timestamp) 
    {
        this.timestamp = timestamp;
    }

    public Long getTimestamp() 
    {
        return timestamp;
    }

    public void setTime(Integer time) 
    {
        this.time = time;
    }

    public Integer getTime() 
    {
        return time;
    }

    public void setCorrectCount(Integer correctCount) 
    {
        this.correctCount = correctCount;
    }

    public Integer getCorrectCount() 
    {
        return correctCount;
    }

    public void setWrongCount(Integer wrongCount) 
    {
        this.wrongCount = wrongCount;
    }

    public Integer getWrongCount() 
    {
        return wrongCount;
    }

    public void setWordCount(Integer wordCount) 
    {
        this.wordCount = wordCount;
    }

    public Integer getWordCount() 
    {
        return wordCount;
    }

    public void setCorrectWordIndexes(String correctWordIndexes) 
    {
        this.correctWordIndexes = correctWordIndexes;
    }

    public String getCorrectWordIndexes() 
    {
        return correctWordIndexes;
    }

    public void setWordNumber(Integer wordNumber) 
    {
        this.wordNumber = wordNumber;
    }

    public Integer getWordNumber() 
    {
        return wordNumber;
    }

    public void setWordRecordIds(String wordRecordIds) 
    {
        this.wordRecordIds = wordRecordIds;
    }

    public String getWordRecordIds() 
    {
        return wordRecordIds;
    }

    public void setWpm(Integer wpm) 
    {
        this.wpm = wpm;
    }

    public Integer getWpm() 
    {
        return wpm;
    }

    public void setInputAccuracy(Integer inputAccuracy) 
    {
        this.inputAccuracy = inputAccuracy;
    }

    public Integer getInputAccuracy() 
    {
        return inputAccuracy;
    }

    public void setWordAccuracy(Integer wordAccuracy) 
    {
        this.wordAccuracy = wordAccuracy;
    }

    public Integer getWordAccuracy() 
    {
        return wordAccuracy;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("userId", getUserId())
            .append("dictId", getDictId())
            .append("chapter", getChapter())
            .append("timestamp", getTimestamp())
            .append("time", getTime())
            .append("correctCount", getCorrectCount())
            .append("wrongCount", getWrongCount())
            .append("wordCount", getWordCount())
            .append("correctWordIndexes", getCorrectWordIndexes())
            .append("wordNumber", getWordNumber())
            .append("wordRecordIds", getWordRecordIds())
            .append("wpm", getWpm())
            .append("inputAccuracy", getInputAccuracy())
            .append("wordAccuracy", getWordAccuracy())
            .append("createTime", getCreateTime())
            .toString();
    }
}

